海南老脚数

vuePress-theme-reco 海南老脚数    2017 - 2021
海南老脚数 海南老脚数

Choose mode

  • dark
  • auto
  • light
主页
指南
  • 应用介绍
  • cH5-PWA应用 (opens new window)
  • SSR-个人官网 (opens new window)
  • 微前端框架应用 (opens new window)
印记
高级
  • 小程序Node后端实践
  • JS开发灵活的数据应用
  • Node核心知识
  • Git原理详解及实战
进阶
  • 大厂H5开发实战
  • 前端性能优化
  • 前端面试指南
组件库
  • Vue3.0
  • Nuxt
  • 吃吃吃
分类
  • 问题集中营
  • VUE
  • 前端小笔记
  • Cookie
  • 深夜食堂
标签
Github (opens new window)
掘金 (opens new window)
author-avatar

海南老脚数

5

文章

4

标签

主页
指南
  • 应用介绍
  • cH5-PWA应用 (opens new window)
  • SSR-个人官网 (opens new window)
  • 微前端框架应用 (opens new window)
印记
高级
  • 小程序Node后端实践
  • JS开发灵活的数据应用
  • Node核心知识
  • Git原理详解及实战
进阶
  • 大厂H5开发实战
  • 前端性能优化
  • 前端面试指南
组件库
  • Vue3.0
  • Nuxt
  • 吃吃吃
分类
  • 问题集中营
  • VUE
  • 前端小笔记
  • Cookie
  • 深夜食堂
标签
Github (opens new window)
掘金 (opens new window)
  • 额外说点:.gitignore——排除不想被管理的文件和目录
  • 高级 1:不喜欢 merge 的分叉?用 rebase 吧
  • 高级 2:刚刚提交的代码,发现写错了怎么办?
  • 高级 3:写错的不是最新的提交,而是倒数第二个?
  • 高级 4:比错还错,想直接丢弃刚写的提交?
  • 高级 5:想丢弃的也不是最新的提交?
  • 高级 6:代码已经 push 上去了才发现写错?
  • 高级 7:reset 的本质——不止可以撤销提交
  • 高级 8:checkout 的本质
  • 高级 9:紧急情况:「立即给我打个包,现在马上!」
  • 高级 10:branch 删过了才想起来有用?
  • 进阶 1:HEAD、master 与 branch
  • 进阶 2:push 的本质
  • 进阶 3:merge:合并 commits
  • 进阶 4:Feature Branching:最流行的工作流
  • 进阶 5:关于 add
  • 进阶 6:看看我都改了什么
  • 上手 1:新公司用 Git 管理代码,怎么快速上手?
  • 上手 2:团队工作的基本工作模型
  • 什么是分布式版本控制系统(DVCS)
  • 什么是版本控制系统(VCS)
  • 总结

vuePress-theme-reco 海南老脚数    2017 - 2021

进阶 6:看看我都改了什么

海南老脚数

# 进阶 6:看看我都改了什么

之前的章节里,说到过 git log 可以查看历史记录:

git log

1
2

事实上,如果你希望看到更多细节,比如你想看看每条 commit 具体都有那些改动,也是可以的。

# log -p 查看详细历史

-p 是 --patch 的缩写,通过 -p 参数,你可以看到具体每个 commit 的改动细节:

git log -p

1
2

log -p 可以看到每一个 commit 的每一行改动,所以很适合用于代码 review。

# log --stat 查看简要统计

如果你只想大致看一下改动内容,但并不想深入每一行的细节(例如你想回顾一下自己是在哪个 commit 中修改了 games.txt 文件),那么可以把选项换成 --stat。

git log --stat

1
2

# show 查看具体的 commit

如果你想看某个具体的 commit 的改动内容,可以用 show:

# 看当前 commit

直接输入:

git show

1
2

# 看任意一个 commit

在 show 后面加上这个 commit 的引用(branch 或 HEAD 标记)或它的 SHA-1 码:

git show 5e68b0d8

1
2

# 看指定 commit 中的指定文件

在 commit 的引用或 SHA-1 后输入文件名:

git show 5e68b0d8 shopping\ list.txt

1
2

# 看未提交的内容

如果你想看未提交的内容,可以用 diff。

# 比对暂存区和上一条提交

使用 git diff --staged 可以显示暂存区和上一条提交之间的不同。换句话说,这条指令可以让你看到「如果你立即输入 git commit,你将会提交什么」:

git diff --staged

1
2

--staged 有一个等价的选项叫做 --cached。这里所谓的「等价」,是真真正正的等价,它们的意思完全相同。

# 比对工作目录和暂存区

使用 git diff (不加选项参数)可以显示工作目录和暂存区之间的不同。换句话说,这条指令可以让你看到「如果你现在把所有文件都 add,你会向暂存区中增加哪些内容」:

git diff

1
2

# 比对工作目录和上一条提交

使用 git diff HEAD 可以显示工作目录和上一条提交之间的不同,它是上面这二者的内容相加。换句话说,这条指令可以让你看到「如果你现在把所有文件都 add 然后 git commit,你将会提交什么」(不过需要注意,没有被 Git 记录在案的文件(即从来没有被 add 过 的文件,untracked files 并不会显示出来。为什么?因为对 Git 来说它并不存在啊)。

git diff HEAD

1
2

实质上,如果你把 HEAD 换成别的 commit,也可以显示当前工作目录和这条 commit 的区别。不过这种「如果」是可以列举很多很多的,Git 非常灵活,假如我把每个命令的所有可能性都列举出来,这本小册会变得杂乱无比没有重点,反而会让你困惑。所以我只讲最常用和最通用的内容,如果你对这些「如果」感兴趣,最好是自己去探索。

# 小结

这一节介绍了一些查看改动内容的方法,大致有这么几类:

  1. 查看历史中的多个 commit:log
    1. 查看详细改动: git log -p
    2. 查看大致改动:git log --stat
  2. 查看具体某个 commit:show
    1. 要看最新 commit ,直接输入 git show ;要看指定 commit ,输入 git show commit的引用或SHA-1
    2. 如果还要指定文件,在 git show 的最后加上文件名
  3. 查看未提交的内容:diff
    1. 查看暂存区和上一条 commit 的区别:git diff --staged(或 --cached)
    2. 查看工作目录和暂存区的区别:git diff 不加选项参数
    3. 查看工作目录和上一条 commit 的区别:git diff HEAD
欢迎来到 海南老脚数
看板娘